#ifndef SCOREFUNCTIONS_H_
#define SCOREFUNCTIONS_H_

#include "../Utils/Utils.h"
#include "../SparceMatrix/sparse_matrix.h"

void InitScore(const elem* groupVec, const elem* multProduct, const elem* degVec,
		elem Minverse, elem* score, unsigned size);

void UpdateScore(const elem* groupVec, const elem* modularityMatrix, elem* score,
		unsigned vertix, unsigned size);

void MoveBetweenGroups (elem* groupVec, const elem* modularityMatrix, elem* score,
		const elem* degVec, bool* moved, unsigned vertix, unsigned size);


elem* ImproveDiv (elem* groupVec, const sparse_matrix_lst* adjMatrix,
		elem* degVec, elem MInverse, const elem* modularityMat, elem* deltaQ);


#endif /*SCOREFUNCTIONS_H_*/
